import { userAccountLogin } from '@/api/user'

// 用户状态
export default {
  // 命名空间，避免定义的变量名冲突
  namespaced: true,
  //  state定义为函数，避免引用问题
  state: () => ({
    // 当前登陆人的完整信息
    profile: {
      id: '',
      avatar: '',
      nickname: '',
      account: '',
      mobile: '',
      token: ''
    }
  }),

  mutations: {
    // 同步存储用户信息
    setProfile (state, payload) {
      state.profile = payload
    },

    delProfile (state) {
      state.profile = {}
      // 不需要本地localStorage删除，因为本地有插件同步
    }
  },

  actions: {
    // 异步获取用户信息
    async getProfile ({ commit }, payload) {
      const { result } = await userAccountLogin(payload)
      commit('setProfile', result)
    },

    async delProfileAndShopcar ({ commit }) {
      // 放在action里是因为，退出登录也需要调用接口，告诉后台清理后台token
      // 这里没有退出登录的接口
      commit('delProfile')
    }
  }
}
